package com.jichaoyun.service;

import gnu.io.SerialPort;

import java.util.ArrayList;
import java.util.List;

public interface ComPortService {

    /**
     * 找出空闲串口
     * @return
     */
    ArrayList<String> findPort();

    /**
     * 打开串口
     * @param userId
     * @param portName
     * @param baudrate
     * @param databits
     * @param parity
     * @param stopbits
     * @return
     */
    SerialPort openPort(Integer userId,String portName, int baudrate, int databits, int parity, int stopbits);

    /**
     * 连接读卡器
     */
    String ConnectCardRead(Integer userId) throws InterruptedException;

    /**
     * 发送命令读取串口数据
     * @param serialPort
     */
    String readPort(SerialPort serialPort) throws InterruptedException;

    /**
     * 发送命令读取卡号
     * @param userId
     */
    String readCardNum(Integer userId) throws InterruptedException;

    /**
     * 查找所有未绑定IC卡的用户
     * @return
     */
    List<String> findNoICStation();

    /**
     * 查找所有已绑定IC卡的用户
     * @return
     */
    List<String> findHadICStation();

    /**
     * 绑定IC卡
     * @param stationName
     * @param ICCardNum
     */
    void bindingIcCard(String stationName,String ICCardNum);

    /**
     * 补发绑定IC卡
     * @param ICCardNum
     */
    void bindingBoundIcCard(String ICCardNum);

    /**
     * 根据IC卡号返回站点名称
     * @param ICCardNum
     * @return
     */
    String getStationNameByIcCard(String ICCardNum);


    /**
     * 充值IC卡
     * @param userId
     * @param number
     * @return
     */
    String reChargeIcCard(Integer userId,Float number) throws InterruptedException;

    void closePort(Integer userId);

}
